//获取应用实例
const db = wx.cloud.database();
const _ = db.command;
var app = getApp();
Page({
  data: {
    old_photo:"",                 //原头像存储路径
    user: {},
    cloud_path: "",               //云存储路径
    src: "",                      //需裁剪的图片链接
    // 以下为直接移植
    width: 250, //宽度
    height: 250, //高度
    max_width: 400,
    max_height: 400,
    disable_rotate: true, //是否禁用旋转
    disable_ratio: true, //锁定比例
    limit_move: true, //是否限制移动
  },
  onLoad: function (options) {
    // 1、获取用户_openid: app.globalData.open_id必须等待一段时间，不能直接编译该页面
    db.collection("user").where({
      _openid: app.globalData.open_id
      }).get()
      .then(res => {
        this.setData({
          user: res.data[0]
        })
      })
    // 2、从上一层得到图片链接
    this.setData({
      src: options.pic
    })
    this.cropper = this.selectComponent("#image-cropper");
  },
  // 取消按钮
  cancel() {
    // 返回上一层
    wx.navigateBack({
      delta: -1
    })
  },
  // 提交按钮
  submit() {
    wx.showLoading({
      title: '上传中',
    })
    // 1、删掉旧照片
    this.setData({
      old_photo:this.data.user.user_photo
    })
    wx.cloud.deleteFile({
      fileList: [this.data.old_photo],
    })

    // 2、获取裁剪后的照片
    this.cropper.getImg((obj) => {
      // 3、处理得到新照片的名称
      var that = this;
      var time = Date.parse(new Date());
      this.setData({
        cloud_path: 'user_photo/' + this.data.user._id + '_' + time + '.png',
      })
      // 4、上传新照片到云端
      wx.cloud.uploadFile({
        cloudPath: that.data.cloud_path,
        filePath: obj.url, //本地图片路径
        success: function (res) {
          // 5、成功后改变用户的头像路径
          db.collection("user").doc(that.data.user._id).update({
            data: {
              user_photo: "cloud://xiaogan-gywya.7869-xiaogan-gywya-1303119726/" + that.data.cloud_path
            }
          }).then(res => {
            // 6、发送成功消息并返回上一层
            wx.hideLoading()
            wx.navigateBack({
              delta: -1,
              success:function(res){
                wx.showToast({
                  title: '上传成功',
                  icon: 'success'
                })
              }
            })
          })
        },
        // 5、失败则返回失败提示并返回上一层
        fail: function (err) {
          wx.showToast({
            title: '上传失败',
            icon:'none'
          })
          wx.navigateBack({
            delta: -1,
          })
        }
      })
    });
  },
  // 以下函数均为直接移植
  cropperload(e) {},
  loadimage(e) {
    wx.hideLoading();
    this.cropper.imgReset();
  },
  clickcut(e) {
    console.log(e.detail);
    //图片预览
    wx.previewImage({
      current: e.detail.url, // 当前显示图片的http链接
      urls: [e.detail.url] // 需要预览的图片http链接列表
    })
  },
  setWidth(e) {
    this.setData({
      width: e.detail.value < 10 ? 10 : e.detail.value
    });
    this.setData({
      cut_left: this.cropper.data.cut_left
    });
  },
  setHeight(e) {
    this.setData({
      height: e.detail.value < 10 ? 10 : e.detail.value
    });
    this.setData({
      cut_top: this.cropper.data.cut_top
    });
  },
  setCutTop(e) {
    this.setData({
      cut_top: e.detail.value
    });
    this.setData({
      cut_top: this.cropper.data.cut_top
    });
  },
  setCutLeft(e) {
    this.setData({
      cut_left: e.detail.value
    });
    this.setData({
      cut_left: this.cropper.data.cut_left
    });
  },
  switchChangeDisableHeight(e) {
    this.setData({
      disable_height: e.detail.value
    });
  },
  rotate() {
    //在用户旋转的基础上旋转90°
    this.cropper.setAngle(this.cropper.data.angle += 90);
  },
  end(e) {
    clearInterval(this.data[e.currentTarget.dataset.type]);
  },
  reset() {
    this.cropper.imgReset();
  }
})